package com.tanhua.server.controller;

import com.tanhua.commons.utils.JwtUtils;
import com.tanhua.model.db.UserInfo;
import com.tanhua.server.interceptor.UserHolder;
import com.tanhua.server.service.UserService;
import io.jsonwebtoken.Claims;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

/**
 * @program: tanhua
 * @description:
 * @author: MR.peng
 * @create: 2022-03-08 17:26
 **/

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    /*
    * 保存用户资料
    *   请求路径：/user/loginReginfo
    *    body参数
    *    请求头参数：Authorization
    *    返回值：void
    * */
    @PostMapping("/loginReginfo")
    public void loginReginfo(@RequestBody UserInfo userInfo){
//        //1.判断token
//        boolean verifyToken = JwtUtils.verifyToken(token);
//        if (!verifyToken){
//            throw  new  RuntimeException("用户未登录");
//        }
//        //2.解析token(用户id)
//        Claims claims = JwtUtils.getClaims(token);
//        Long id = claims.get("id", Long.class);
        Long id = UserHolder.getUserId();
        //3.将用户id设置到info对象
        userInfo.setId(id);
        //4.调用service
        userService.saveUserInfo(userInfo);

    }


    /*
    *  /user/loginReginfo/head
    *
    * 请求头参数：Authorization ，
    * 参数 :headPhoto 文件(头像) 请求参数是文件，不用管请求方式和参数类型
    *
    * *
    * */

    @PostMapping("/loginReginfo/head")
    public void head(MultipartFile headPhoto) throws IOException {
//        //1.获取参数
//        //1.判断token
//        boolean verifyToken = JwtUtils.verifyToken(token);
//        if (!verifyToken){
//            throw  new  RuntimeException("用户未登录");
//        }
//        //2.解析token(用户id)
//        Claims claims = JwtUtils.getClaims(token);
//        Long id = claims.get("id", Long.class);
        Long id = UserHolder.getUserId();
        //2.调用service
        userService.head(id,headPhoto);
    }

}
